The invention relates to serving data from a resource limited system.
The increasingly widespread use of the Internet and the World Wide Web in business environments has led to the establishment of TCP/IP, the Internet's transport protocol, as the de facto standard for domestic and international networked communications between individuals and organizations. Concomitantly, organizations have come to recognize the value of adopting TCP/IP as an internal networking protocol for use with so-called "intranets." An organization's internal use of TCP/IP-based networks permits the organization to exploit the growing body of software designed for the Internet, and in particular web browsers, for internal purposes.
A web browser is a program which is capable, while running on a given computer system, of displaying audiovisual hypertext data (known as web pages) transmitted from a remote computer system (known as a web site) which is connected to the given computer via a TCP/IP based network. Web browsers are also capable of receiving input from a user (typically in response to information displayed on a web page), and transmitting that information back to the web site.
A web site is said to "serve" a web page when it transmits "web page data" to a web browser running on a remote computer system, in response to a request from that browser. Web page data consists of a stream of instructions to the web browser describing the appearance and contents of the web page. These instructions may include simple text and formatting commands, as well as instructions to include other resources, such as audio or graphics files which can be access via the network. They may also include instructions for creating hypertext links to other web pages, and for creating input forms by which the user may input data to the web browser to be transmitted to a web site.
The software on a web site which performs this task is called a "web server." The web server and web browser typically communicate using a transfer protocol known as Hypertext Transfer Protocol (HTTP) (which describes how data are transmitted between the server and the browser), and a content protocol known as HyperText Markup Language (HTML) (which describes how the data transmitted to the web browser should be displayed).
Communication between a web browser and a web server is typically initiated by the web browser transmitting to the web server an HTTP "request" message, requesting that web page information be transmitted to the web browser. The request will include a "Universal Resource Locator" (URL), which specifies to the web server the location of the information being sought.
The request may also contain additional data which can be used by the web server to further define the information being requested by the web browser.
HTTP provides two principal types of request messages, GET and POST. In a GET message, any additional data is appended to the URL to create a string of the form &lt;URL&gt;?&lt;DATA&gt;. In the case of a POST message, any additional data is transmitted in a separate segment of the request message.
In a typical web site, a URL identifying information on that web site corresponds to a particular file stored on the web site's file system. When an HTTP request message is received at the web site, the file type of the file associated with the URL specified in the HTTP request is checked. If the file contains data, the web server responds to the HTTP request by transmitting the contents of that file back to the web browser. If the file is a program file, the program is executed, and the output of that program is transmitted back to the requesting web browser.
When the file is a program file, the additional data contained in the HTTP request may be accessed by the program when it executes. The additional data is typically passed to the program according to a protocol known as Common Gateway Interface (CGI). This mechanism permits the program to generate output which is dependent on the inputs received from the web browser.
The data transmitted to a web browser in response to an HTTP request may consist of data in any one of a variety of formats. One frequently used format is HTML. If the data represents a web page in HTML format it will consist of a sequence of ASCII text including HTML statements. Typically, some of the HTML statements will indicate that data found at other URLs should be included in the web page display. When a web browser receives such an HTML statement, it issues HTTP commands to retrieve the data specified by the URL, and includes the data received in response in its display of the web page. These references to other URLs, which I refer to as "client-side includes," permit a single file of HTML statements to represent a web page composed of data from multiple locations. For example, a web page could include a graphical image which is stored in a different location than the page itself. Note that the included data does not presently consist of additional HTML statements.
By contrast to a "client-side include", which entails the web browser incorporating external information into a web page before displaying it, some web servers support "server-side includes," statements within an HTML file which cause the web server to insert dynamically generated information within the file just prior to transmitting it to the requesting web browser.
As described above, a web server is also capable of receiving data from a web browser. Typically, this data is provided through the HTML "forms" mechanism. An HTML FORM statement contained within a web page directs the web browser to display interactive data input mechanisms (e.g. radio buttons, check boxes, text input boxes) to the user. The user can use these mechanisms to specify information which is then transmitted back to a program on the web site specified by a URL within the FORM statement. The receiving program typically processes the form data and outputs an HTML page in response.
Another class of software systems which are widely used on the Internet are electronic mail (email) processing systems. Email processing systems permit email messages to be transferred between computer systems on the internet in a unilateral fashion. That is, an email message may be sent from a first computer system to a second computer system, without the second computer having requested the transfer. Email messages are typically directed to a specific file system directory or file on the recipient computer system known as a "mailbox." Incoming messages are appended to the mailbox permitting a user to view them at a later time.
Internet email messages include header information, and a body. The header information includes at a minimum, addressing information indicating the address to which the message is directed. An email message may also include attachments, which are files appended to, but conceptually separate from, the main body of the message. The internet mail protocol is known as the Simple Mail Transport Protocol (SMTP) and is described, for example, in Request for Comments (RFC) 821, "Simple Mail Transport Protocol", published by the Internet Engineering Task Force. The standard format for internet mail messages is described in Request for Comments (RFC) 822, "Mail Message Format", published by the Internet Engineering Task Force.
The growing use of intranets has created a demand to use web browsers to access/or and configure "resource limited systems." A resource limited system lacks one or more of the computing resources of a typical personal computer or workstation: a hard disk drive, a general purpose operating system, or adequate RAM to effectively operate a conventional web server. Examples of such resource-limited systems include non-standard internal devices such as internetworking equipment (e.g. routers, switches, and hubs); printers; power management devices; and industrial control equipment.
A web browser provides a potentially excellent interface for accessing and configuring non-standard internal devices. By using a standard web browser, a user could access web pages to display status information from a networked device, and by using the HTML forms mechanism a user could transmit control information to the device.
However, existing web servers are typically designed to run on a disk-based personal computer or workstation running a standard commercially available operating system such as UNIX, OS/2, Microsoft Windows or Apple Macintosh OS. They are thus ill-suited to run on a resource limited system.
While some non-standard internal devices do support operating systems which provide disk system emulation routines and multiple processing, these more complex operating system facilitate the use of conventional web servers only at the cost of placing significant demands on the system's limited process or memory resources.